/*
#
#  Copyright 2011 Matthew Jannace
#
#  This file is part of RoboCode BlackHoleAgent
#
#  RoboCode BlackHoleAgent is free software: you can redistribute it and/or
#  modify it under the terms of the GNU General Public License as
#  published by the Free Software Foundation, either version 3 of the
#  License, or (at your option) any later version.
#
#  RoboCode BlackHoleAgent is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with RoboCode BlackHoleAgent. If not, see
#  <http://www.gnu.org/licenses/>.
#
 */
package com.jannaceltd.TeamBlackHoleBeer.Modules.Movement.MovementMethods;

import java.awt.geom.Point2D;

/**
 * Class used to store information about vectors
 * @author Matthew Jannace <mjannace@gmail.com>
 * @version 1.0
 */
public class GravityPoint extends Point2D.Double {

    private static final long serialVersionUID = 5890963822395906392L;
    /**
     * Force of the Vector
     */
    protected double Force;
    /**
     * Direction of the Vector
     */
    protected double Direction;

    /**
     * Creates a new Gravity Point Object
     * @param pX
     * @param pY
     * @param pForce
     */
    public GravityPoint(double pX, double pY, double pForce) {
        this.x = pX;
        this.y = pY;
        this.Force = pForce;
    }

    /**
     * Gets the Force
     * @return Force
     */
    public double getForce() {
        return Force;
    }

    /**
     * Sets the Force
     * @param power 
     */
    public void setForce(double power) {
        this.Force = power;
    }

    /**
     * Gets the Direction
     * @return Direction
     */
    public double getDirection() {
        return Direction;
    }

    /**
     * Sets the Direction
     * @param Direction
     */
    public void setDirection(double Direction) {
        this.Direction = Direction;
    }

    /**
     * Gets the Position Location
     * @return
     */
    public Point2D.Double getPos() {
        return new Point2D.Double(x, y);
    }

    /**
     * Gets the X Position Location
     * @return
     */
    @Override
    public double getX() {

        return this.x;
    }

    /**
     * Gets the Y Position Location
     * @return
     */
    @Override
    public double getY() {
        return this.y;
    }
}
